commonlibsse_ng\re\t/
TESModel.rs

1use core::ffi::c_char;
2
3use crate::re::BSFixedString::BSFixedString;
4use crate::re::BSResource;
5use crate::re::BaseFormComponent::{BaseFormComponent, BaseFormComponentVtbl};
6use crate::re::TESModelTextSwap::TESModelTextureSwap;
7use crate::re::offsets_rtti::RTTI_TESModel;
8use crate::re::offsets_vtable::VTABLE_TESModel;
9use crate::rel::id::VariantID;
10
11#[repr(C)]
12#[derive(Debug)]
13pub struct TESModel {
14    pub __base: BaseFormComponent,
15    pub model: BSFixedString,        // 0x08
16    pub textures: *mut BSResource::ID, // 0x10
17    pub addons: *mut u32,            // 0x18
18    pub numTextures: u16,            // 0x20
19    pub numAddons: u16,              // 0x22
20    pub pad24: u32,                  // 0x24
21}
22const _: () = assert!(std::mem::size_of::<TESModel>() == 0x28);
23
24impl TESModel {
25    pub const RTTI: VariantID = RTTI_TESModel;
26    pub const VTABLE: [VariantID; 1] = VTABLE_TESModel;
27}
28
29#[repr(C)]
30pub struct TESModelVtbl {
31    pub __base: BaseFormComponentVtbl,
32    pub GetModel: extern "C" fn(this: *const TESModel) -> *const c_char, // 04
33    pub SetModel: extern "C" fn(this: *mut TESModel, model: *const c_char), // 05
34    pub GetAsModelTextureSwap: extern "C" fn(this: *mut TESModel) -> *mut TESModelTextureSwap, // 06
35}